Introduction

~6,000 barcoded TP53 reporters were probed in MCF7 TP53WT/KO cells and stimulated with Nutlin-3a. I previously processed the raw sequencing data, quantified the pDNA data and normalized the cDNA data. In this script, a detailed dissection of the reporter activities will be carried out to understand how TP53 drives transcription and to identify the most sensitive TP53 reporters.


Setup

Libraries


Functions


Load data


Figure 1: Characterize P53 activities per condition

Aim: I want to characterize the reporter activity distributions in the tested conditions. Does Nutlin boost P53 reporter activity and is P53 inactive in the KO cells?

## [1] 0.9685877
## [1] 0.9036356
## [1] 0.903232

Conclusion: 1F: Replicates do correlate well. 1G: Negative controls are inactive compared to P53 reporters. P53 reporters become more active in WT cells and even more active upon Nutlin stimulation.


Figure 2: Effect of affinity and binding sites + binding site positioning

Aim: How does the binding site affinity, copy number, and their respective positioning affect reporter activity?

Conclusion: BS006 is the most responsive to Nutlin-3a. Addition of binding sites is super-additive. Positioning of binding sites matters - putting them directly next to each other is inhibitory, and putting them close to the TSS leads to higher activity.


Figure 3: The effect of the spacer length.

Aim: Show how the spacer length between adjacent binding sites affects reporter activity.

Conclusion: Spacer length influences activity periodically. Adjacent binding sites need to be 180 degrees tilted with respect to each other to achieve optimal activation.


Figure 4: The effect of the minimal promoter and the spacer sequence.

Aim: Show how the P53 reporters interact with the two minimal promoters and the three spacer sequences.

Conclusion: Promoter and spacer sequence influence activity linearly.


Figure 5 & 6: Linear model + Selection of best reporters

Aim: Can we explain now every observation using a linear model?

## MODEL INFO:
## Observations: 264
## Dependent Variable: log2(reporter_activity)
## Type: OLS linear regression 
## 
## MODEL FIT:
## F(9,254) = 109.03, p = 0.00
## R² = 0.79
## Adj. R² = 0.79 
## 
## Standard errors: OLS
## ---------------------------------------------------------------
##                                     Est.   S.E.   t val.      p
## -------------------------------- ------- ------ -------- ------
## (Intercept)                         4.01   0.08    50.79   0.00
## promotermCMV                        0.67   0.09     7.39   0.00
## background2                        -0.91   0.09   -10.03   0.00
## background3                         0.33   0.09     3.57   0.00
## spacing_degree_transf               0.75   0.04    20.06   0.00
## affinity_id3_med_only               0.13   0.07     1.75   0.08
## affinity_id5_low_only               0.89   0.07    11.97   0.00
## affinity_id7_very-low_only          0.82   0.07    11.06   0.00
## promotermCMV:background2            0.44   0.13     3.45   0.00
## promotermCMV:background3           -0.76   0.13    -5.92   0.00
## ---------------------------------------------------------------

## MODEL INFO:
## Observations: 264
## Dependent Variable: log2(reporter_activity)
## Type: OLS linear regression 
## 
## MODEL FIT:
## F(9,254) = 88.29, p = 0.00
## R² = 0.76
## Adj. R² = 0.75 
## 
## Standard errors: OLS
## ---------------------------------------------------------------
##                                     Est.   S.E.   t val.      p
## -------------------------------- ------- ------ -------- ------
## (Intercept)                         2.78   0.10    28.58   0.00
## promotermCMV                        1.11   0.11     9.92   0.00
## background2                        -0.87   0.11    -7.79   0.00
## background3                         0.50   0.11     4.46   0.00
## spacing_degree_transf               0.28   0.05     6.09   0.00
## affinity_id3_med_only              -0.14   0.09    -1.50   0.13
## affinity_id5_low_only               1.43   0.09    15.57   0.00
## affinity_id7_very-low_only         -0.08   0.09    -0.90   0.37
## promotermCMV:background2            0.21   0.16     1.31   0.19
## promotermCMV:background3           -1.13   0.16    -7.10   0.00
## ---------------------------------------------------------------

Conlusion: Top reporters are better than commercial reporters. Linear model gives insights into which features are important to drive high expression.

Session Info

paste("Run time: ",format(Sys.time()-StartTime))
## [1] "Run time:  23.27504 secs"
getwd()
## [1] "/DATA/usr/m.trauernicht/projects/P53_reporter_scan/analyses"
date()
## [1] "Thu Feb 16 14:28:49 2023"
sessionInfo()
## R version 4.0.5 (2021-03-31)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 20.04.5 LTS
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
## LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/liblapack.so.3
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] scales_1.2.0        ggrastr_1.0.1       jtools_2.1.4       
##  [4] glmnetUtils_1.1.8   glmnet_4.1-4        Matrix_1.5-1       
##  [7] randomForest_4.6-14 plotly_4.10.0       ROCR_1.0-11        
## [10] tidyr_1.2.0         stringr_1.4.0       readr_2.1.2        
## [13] GGally_2.1.2        gridExtra_2.3       cowplot_1.1.1      
## [16] plyr_1.8.7          viridis_0.6.2       viridisLite_0.4.0  
## [19] ggforce_0.3.3       ggbeeswarm_0.6.0    ggpubr_0.4.0       
## [22] pheatmap_1.0.12     tibble_3.1.6        maditr_0.8.3       
## [25] dplyr_1.0.8         ggplot2_3.4.0       RColorBrewer_1.1-3 
## 
## loaded via a namespace (and not attached):
##  [1] nlme_3.1-152      httr_1.4.2        tools_4.0.5       backports_1.4.1  
##  [5] bslib_0.3.1       utf8_1.2.2        R6_2.5.1          vipor_0.4.5      
##  [9] mgcv_1.8-34       DBI_1.1.2         lazyeval_0.2.2    colorspace_2.0-3 
## [13] withr_2.5.0       tidyselect_1.1.2  compiler_4.0.5    cli_3.4.1        
## [17] Cairo_1.5-15      labeling_0.4.2    sass_0.4.1        digest_0.6.29    
## [21] rmarkdown_2.13    pkgconfig_2.0.3   htmltools_0.5.2   highr_0.9        
## [25] fastmap_1.1.0     htmlwidgets_1.5.4 rlang_1.0.6       rstudioapi_0.13  
## [29] shape_1.4.6       jquerylib_0.1.4   farver_2.1.0      generics_0.1.2   
## [33] jsonlite_1.8.0    car_3.0-12        magrittr_2.0.3    Rcpp_1.0.8.3     
## [37] munsell_0.5.0     fansi_1.0.3       abind_1.4-5       lifecycle_1.0.3  
## [41] stringi_1.7.6     yaml_2.3.5        carData_3.0-5     MASS_7.3-53.1    
## [45] grid_4.0.5        parallel_4.0.5    crayon_1.5.1      lattice_0.20-41  
## [49] splines_4.0.5     pander_0.6.5      hms_1.1.1         knitr_1.38       
## [53] pillar_1.7.0      ggsignif_0.6.3    codetools_0.2-18  glue_1.6.2       
## [57] evaluate_0.15     data.table_1.14.2 vctrs_0.5.1       tzdb_0.3.0       
## [61] tweenr_1.0.2      foreach_1.5.2     gtable_0.3.0      purrr_0.3.4      
## [65] polyclip_1.10-0   reshape_0.8.9     assertthat_0.2.1  xfun_0.30        
## [69] broom_0.8.0       rstatix_0.7.0     survival_3.2-10   iterators_1.0.14 
## [73] beeswarm_0.4.0    ellipsis_0.3.2